import logging.handlers
import time


class GetLogger:
    logger = None
    #获取logger
    @classmethod
    def get_logger(cls):
        #如果logger为空
        if cls.logger is None:
            #获取日志器
            cls.logger = logging.getLogger()
            #设置日志器级别
            cls.logger.setLevel(logging.INFO)
            #获取处理器  控制台
            sh = logging.StreamHandler()
            #获取处理器 文件（时间）、
            th = logging.handlers.TimedRotatingFileHandler(filename="./log/tpshop{}.log".format(time.strftime("%Y-%m-%d_%H-%M-%S")),
                                                           when="midnight",
                                                           interval=1,
                                                           backupCount=30,
                                                           encoding="utf-8")
            # 获取格式器
            fmt = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s (%(funcName)s:%(lineno)d] - %(message)s]"
            fm = logging.Formatter(fmt)
            # 将格式器 设置 处理器中、
            sh.setFormatter(fm)
            th.setFormatter(fm)
            # 将处理器添加到日志器中
            cls.logger.addHandler(sh)
            cls.logger.addHandler(th)


        #返回日志器
        return cls.logger